import axios from 'axios';
import { ElMessage, ElMessageBox } from 'element-plus';
//配置axios
let http = axios.create({
  baseURL: '/api',
  timeout: 1000 * 10,
  withCredentials: true
});
//配置拦截器
//请求拦截器  所有的axios拦截器都会被请求的拦截器拦截,可以对拦截的请求数据进行配置
http.interceptors.request.use((config) => {
  //每次发送请求的时候都需要携带token交给后端进行校验
  let token = sessionStorage.getItem('qf-token');
  config.headers.authorization = token;
  return config;
});
//响应拦截器  所有的axios拦截器都会被响应的拦截器拦截,可以对拦截的响应进行额外的配置
// console.dir(ElMessageBox);
http.interceptors.response.use((config) => {
  // console.log(config);

  if (config.data.state) {
    return config;
  } else {
    //声明路径
    let exCludePath = '/sms/send';
    let dexPath = '/order/query_order_status';
    //如果config里面的路径不等于这个才会让弹窗出现.
    if (exCludePath !== config.config.url && dexPath !== config.config.url) {
      // console.log(config);
      // ElMessageBox.alert(config.data.msg, '错误提示', { type: 'error' });
      return Promise.reject(config.data.msg);
    } else {
      return config;
    }
    //不弹窗的第二种方法
    // let exCludePath = ['/sms/send']
    //判断如果excludepath里面没有config.url这个路径 就让弹窗
    // if (!exCludePath.includes(config.config.url)) {
    //   ElMessageBox.alert(config.data.msg, "错误提示", { type: "error" });
    // }
    // return config;
  }
});

//导出http配置
export default http;
